﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Data;

namespace Ken_TestGridView
{
    public class ConnectionDB
    {
        private SqlConnection conn = new SqlConnection("server=.;database=WF1;integrated security = true;");
        private static SqlDataAdapter da;
        private static DataView dv;
        private static DataSet ds;

        // Thủ tục mở kết nối đến database
        public void OpenConnectDB()
        {
            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        // Thủ tục đóng kết nối tới database
        public void CloseConnectDB()
        {
            try
            {
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        // Thủ tục load data vào DataGridView
        public void LoadDataToGrid(DataGridView dgv)
        {
            OpenConnectDB(); // Mở kết nối đến database
            
            String query = "SELECT * FROM tbStudent";
            da = new SqlDataAdapter(query, conn); // Khởi tạo dataApdapter để kết nỗi giữa DataSet và Database
            ds = new DataSet(); // Tạo mới 1 dataset

            new SqlCommandBuilder(da); // Khởi tạo tự động 3 đối tượng command trên DataAdapter (insert, update, delete)

            // Fill dữ liệu vào dataset (gồm metadata và data từ database)
            da.FillSchema(ds, SchemaType.Mapped, "TableStudent"); // Fill metadata
            da.Fill(ds, "TableStudent");

            // Khởi tạo giá trị cho dataGridview bằng Data view
            dv = ds.Tables["TableStudent"].DefaultView;
            dgv.DataSource = dv;
        }
    }
}
